웹 개발
웹보안도구_01_0room 구축 계획
작성자 : Heehyeon Yoo|2025-12-01
# Blog# Security# Flask# Project# Plan
파이썬 공부용 웹보안도구 개발
파이썬을 공부하면서 느낀 건 뭔가를 만들며 배우는 게 가장 빠르다는 점이었다.
그래서 간단한 웹보안도구를 만들기로 했다.
목표는 단순하다. 공부가 목적이니 복잡한 전문 도구 대신 빠르게 확인할 수 있는 최소 기능을 제공하는 것이다.
그리고 그 과정에서 내가 보안 지식을 웹 서비스로 구현할 수 있음을 보여주는 것.
구축 범위 (MVP)
처음부터 욕심내지 않기로 했다.
MVP는 다음 두 기능만 확실히 완성하는 것으로 잡는다.
-
암호 보안 수준 검사기
- 입력 즉시 강도를 확인할 수 있어야 한다.
- 한국어 피드백과 시각적 표현(색/게이지)을 제공한다.
- 길이 제한과 입력 검증은 기본으로 포함한다.
-
안심 링크(URL 확장기)
- 단축 URL을 끝까지 추적해 최종 목적지 표시
- 의심 키워드/패턴 검사로 기본 위험도 평가
- 연결 실패에도 “분석 결과”는 제공
PRD 요약
목표
- Flask 기반 웹 보안 도구 모음 구축
- 입문자도 사용할 수 있는 간단한 UX
- 보안 기본기(입력 검증/예외 처리)를 갖춘 서비스
대상 사용자
- 일반 사용자: 의심 링크나 비밀번호를 빠르게 확인하고 싶은 사람
- 보안/개발 입문자: 복잡한 툴 없이 웹에서 테스트하고 싶은 사람
핵심 기능
- F-01 암호 보안 수준 검사기
- F-02 안심 링크(URL 확장기)
완료 기준
- MVP 2기능 정상 동작
- 기본 UI/UX 흐름 완성
- 예외 처리/문서화 완료
구현 로드맵
계획은 단계를 나누어 진행한다.
Phase 1 (MVP)
- Flask 기반 기본 UI/라우팅 구축
- 두 기능(암호 검사, URL 확장) 구현
- 입력 검증 및 오류 메시지 정리
Phase 2
- 해시 생성기
- 보안 헤더 스캐너
Phase 3
- EXIF 뷰어
- VirusTotal 연동(안심 링크 2차 검증)
Phase 4
- 사용자 대시보드(검사 이력)
- REST API 공개
처음부터 모든 기능을 붙이기보다 작동하는 최소 단위부터 확장한다.
기술 구조
- Backend: Python + Flask
- Frontend: HTML/CSS + Jinja2 템플릿
- 핵심 로직: requests, 정규표현식, 피싱 도메인 DB 대조
그리고 보안 도구답게 최소한의 안전 장치는 반드시 포함한다.
- 입력값 검증 (화이트리스트)
- XSS 방어 (템플릿 자동 이스케이프)
- 민감 정보는
.env로 분리
결론
이 프로젝트는 학습용이다. 기능 욕심을 줄이고 정확한 문제 해결에 집중하는 게 핵심이다.
MVP를 빠르게 완성한 뒤 데이터와 피드백을 바탕으로 확장한다.